package org.weso.acota.services;

import java.util.Date;
import java.util.List;

import org.weso.acota.appserv.FeedbackAppServ;
import org.weso.acota.to.feedback.FeedbackResource;
import org.weso.acota.to.feedback.FeedbackTag;

public class AcotaFeedbackServiceFacadeImpl implements
		AcotaFeedbackServiceFacade{
	FeedbackAppServ appServ;
	public AcotaFeedbackServiceFacadeImpl(){
		this.appServ = new FeedbackAppServ();
	}
//	//Method to add: users, organizations and any sort of RDF resource
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#loadResource(org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean loadResource(ResourceTO resource){
//		return this.appServ.loadResource(resource);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#addOntology(org.weso.acota.to.OntologyTO)
//	 */
//	public  boolean addOntology(OntologyTO ontology){
//		return this.appServ.addOntology(ontology);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listOntologies()
//	 */
//	public  List<OntologyTO> listOntologies(){
//		return this.appServ.listOntologies();
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#getOntology(org.weso.acota.to.OntologyTO)
//	 */
//	public  OntologyTO getOntology(OntologyTO ontology){
//		return this.appServ.getOntology(ontology);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#getModel()
//	 */
//	public  ModelTO getModel(){
//		return this.appServ.getModel();
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#newModel()
//	 */
//	public  boolean newModel(){
//		return this.appServ.newModel();
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#newModel(org.weso.acota.to.OntologyTO)
//	 */
//	public  boolean newModel(OntologyTO ontology){
//		return this.appServ.newModel(ontology);
//	}
//
//	//Listing methods
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listClasses()
//	 */
//	public  List<ResourceTO> listClasses(){
//		return this.appServ.listClasses();
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listProperties()
//	 */
//	public  List<ResourceTO> listProperties(){
//		return this.appServ.listProperties();
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listInstances()
//	 */
//	public  List<ResourceTO> listInstances(){
//		return this.appServ.listInstances();
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listInstancesOf(org.weso.acota.to.ResourceTO)
//	 */
//	public  List<ResourceTO> listInstancesOf(ResourceTO clazz){
//		return this.appServ.listInstancesOf(clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listPropertiesOf(org.weso.acota.to.ResourceTO)
//	 */
//	public  List<ResourceTO> listPropertiesOf(ResourceTO clazz){
//		return this.appServ.listPropertiesOf(clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listTagsOf(org.weso.acota.to.ResourceTO)
//	 */
//	public  List<TagTO> listTagsOf(ResourceTO resource){
//		return this.appServ.listTagsOf(resource);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#listTags()
//	 */
//	public  List<TagTO> listTags(){
//		return this.appServ.listTags();
//	}
//
//	//Resource creation
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#addClass(org.weso.acota.to.ResourceTO, org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean addClass(ResourceTO clazz, ResourceTO parent){
//		return this.appServ.addClass(clazz, parent);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#addInstance(org.weso.acota.to.ResourceTO, org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean addInstance(ResourceTO instance, ResourceTO clazz){
//		return this.appServ.addInstance(instance, clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#addProperty(org.weso.acota.to.ResourceTO, org.weso.acota.to.ResourceTO, org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean addProperty(ResourceTO property,
//			ResourceTO resource1, ResourceTO resource2){
//		return this.appServ.addProperty(property, resource1, resource2);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#createProperty(org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean createProperty(ResourceTO property){
//		return this.appServ.createProperty(property);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#getClass(org.weso.acota.to.ResourceTO)
//	 */
//	public  ResourceTO getClass(ResourceTO clazz){
//		return this.appServ.getClass(clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#removeClass(org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean removeClass(ResourceTO clazz){
//		return this.appServ.removeClass(clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#removeInstance(org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean removeInstance(ResourceTO clazz){
//		return this.appServ.removeInstance(clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#removeProperty(org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean removeProperty(ResourceTO clazz){
//		return this.appServ.removeProperty(clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#removeTag(org.weso.acota.to.ResourceTO)
//	 */
//	public  boolean removeTag(ResourceTO clazz){
//		return this.appServ.removeTag(clazz);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#getProperty(org.weso.acota.to.ResourceTO)
//	 */
//	public  ResourceTO getProperty(ResourceTO property){
//		return this.appServ.getProperty(property);
//	}
//
//	/* (non-Javadoc)
//	 * @see org.weso.acota.services.AcotaFeedbackServiceFacade2#getInstance(org.weso.acota.to.ResourceTO)
//	 */
//	public  ResourceTO getInstance(ResourceTO instance){
//		return this.appServ.getInstance(instance);
//	}
//	public boolean addTag(TagTO tag, ResourceTO resource) {
//		return this.appServ.addTag(tag, resource);
//	}
//	public void saveSuggestions(FeedbackTO feedback) {
//		this.appServ.saveSuggestions(feedback);		
//	}
	public void saveSuggestions(String user, String activity, Date taggingDate,
			String resourceUri, String resourceLabel,
			String resourceDescription, List<FeedbackTag> tags) {
		appServ.saveSuggestions(user, activity, taggingDate, resourceUri, 
				resourceLabel, resourceDescription, tags);
		
	}
	public List<FeedbackTag> getUserTags(String username) {
		return appServ.getUserTags(username);
	}
	public List<FeedbackTag> getDocumentTags(String documentUri) {
		return appServ.getDocumentTags(documentUri);
	}
	public List<FeedbackResource> getTaggedDocuments(String label) {
		return appServ.getTaggedDocuments(label);
	}

}
